

Ext.require([
	'SnowMIS.store.system.Parameter'
	, 'SnowMIS.view.CheckColumn'
]);


/**
 * 
 */
Ext.define('SnowMIS.view.system.Parameters', {
	extend : 'SnowMIS.view.ListPanel' // 继承父类
	, alias : 'widget.parameterspanel' // 
	, checkedRows : ','
	, loadMask : {
		msg : '加载中...'
	}
	, initComponent : function() {
		var parentPanel = this;
		var checkedRows = this.checkedRows;
		var store = Ext.create('SnowMIS.store.system.Parameter', {
			autoLoad : true
			, pageSize : 20
			, listeners : {
				load : function(store, groupers, eOpts) {
					checkedRows = ',';
				}
			}
		})
		var topToolbar = Ext.create('Ext.toolbar.Toolbar', {});
		topToolbar.add([{
			xtype : 'button'
			, text : '查找'
			, iconCls : 'search'
			, handler : function() {
			}
		}, {
			xtype : 'button'
			, text : '添加配置参数'
			, iconCls : 'add'
			, hidden : hiddenMenu('/system/parameters', '2')
			, handler : function() {
				var centerPanel = Ext.getCmp('centerPanel');
				if (!centerPanel) {
					Ext.Msg.alert('警告', '无法创建面板！');
					return;
				}
				var menuTabId = 'menu_tab_system_parameter_add';
				var tab = Ext.getCmp(menuTabId);
				if (!tab) {
					var curSize = centerPanel.curSize;
					var maxSize = centerPanel.maxSize;
					if (curSize == maxSize) {
						centerPanel.remove(centerPanel.getComponent(1));
					}
					var panel = Ext.create('SnowMIS.view.system.Parameter', {
						id : menuTabId
						, parentPanel : parentPanel
						, action : 'add'
						, title : '添加配置参数'
					});
					tab = centerPanel.add(panel);
				}
				centerPanel.setActiveTab(tab); // 激活当前的tab信息
			}
		}, {
			xtype : 'button'
			, text : '批量删除'
			, iconCls : 'cross'
			, hidden : hiddenMenu('/system/parameters', '4')
			, handler : function() {
				var ids = checkedRows || ',';
				if (ids == ',') {
					Ext.Msg.alert('警告', '请选择需要删除的记录！');
					return;
				} else {
					Ext.Msg.confirm('警告', '确定是否要删除选中记录？', function(btn, text) {
						if (btn == 'yes') {
							var url = basePath + 'services/rest/system/parameters?ids=' + ids;
							Ext.Ajax.request({
								url : url
								, method : 'DELETE'
								, success : function(response) {
									var text = response.responseText;
									var json = Ext.JSON.decode(text);
									Ext.Msg.alert('提示', json.message, function() {
										if (json.success) {
											store.load();
										}
									});
								}
								, failure : function(response) {
									
								}
							});
						}
					});
				}
			}
		}]);
		topToolbar.add(Ext.create('Ext.toolbar.Fill', {}));
		topToolbar.add(this.getCommonToolbar());
		Ext.apply(this, {
			store : store
			, columns : [{
				xtype: 'checkcolumn'
				, header: '选择'
				, width: 55
				, listeners : {
					'checkchange' : function(column, recordIndex, checked) {
						var record = store.getAt(recordIndex);
						var id = record.get('id');
						checkedRows = checkedRows || ',';
						if (checked) {
							if (checkedRows.indexOf(',' + id + ',') == -1) {
								checkedRows += id + ',';
							}
						} else {
							var index = -1;
							if ((index = checkedRows.indexOf(',' + id + ',')) != -1) {
								checkedRows = checkedRows.substring(0, index + 1) + checkedRows.substring((index + (',' + id + ',').length), checkedRows.length);
							}
						}
					}
				}
			}, {
				header : '参数名称'
				, dataIndex : 'name'
				, sortable : true
			}, {
				header : '参数类型'
				, dataIndex : 'type'
				, sortable : true
			}, {
				header : '参数描述'
				, dataIndex : 'comment'
				, sortable : true
			}, {
				header : '创建人'
				, dataIndex : 'createUser'
				, sortable : true
			}, {
				header : '创建时间'
				, dataIndex : 'createTime'
				, sortable : true
				, width : 160
			}, {
				header : '修改人'
				, dataIndex : 'modifyUser'
				, sortable : true
			}, {
				header : '修改时间'
				, dataIndex : 'modifyTime'
				, sortable : true
				, width : 160
			}, {
				header : '记录状态'
				, dataIndex : 'status'
				, sortable : true
				, renderer : function(value) {
					if (value == 'SUCCESS') {
						return '<font color="green">启用状态</font>';
					} else {
						return '<font color="red">禁用状态</font>';
					}
				}
			}]
			, tbar : topToolbar
			, dockedItems : [{
				xtype : 'pagingtoolbar'
				, store : store
				, dock : 'bottom'
				, displayInfo : true
			}]
		});
		this.callParent(arguments);
	}
});
